Parity checking codes are used to facilitate the recovery of stored data as well as data transmitted through a communications channel. One type of parity check code is known as Low-Density-Parity-Check (LDPC), which is characterized by a sparse Parity Check Matrix (PCM), i.e., a PCM having a low percentage of 1's. An LDPC encoder at a transmitter is used for encoding source words to generate codewords. An LDPC decoder at a receiver is used for decoding the received codewords. LDPC codes of various rates are being widely adopted, or considered for adoption, in data storage and wireless communications technologies and standards such as those relating to IEEE 802.11 and 5G.
Almost all LDPC codes used in practice are quasi-cyclic (QC) LDPC with QC parity-check matrices, in which a quasi-cyclic identity matrix can be combined with an array of shift information (i.e., QC shift PCM) to define an expanded QC PCM (e.g., a QC LDPC PCM). QC LDPC encoding and recovery algorithms and the storage of PCM information can consume hardware resources, and accordingly there is a need for methods, systems, and technologies that improve the efficiency of and reduce the hardware resources required for QC LDPC coding systems.